# -*- coding: utf-8 -*-
import json

import requests

import setting
from mq import logger
from util.wechatpy import WechatToken

class WeChatMessageTpl(WechatToken):

    def init(self):
        self.url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s" % self.access_token
        self.red_color = "#FF0000"
        self.gold_color = "#FF9900"  # 金黄色
        self.pale_yellow_color = "#EEAD0E"  # 浅黄色
        self.color = "#173177"  # 默认深蓝色
        self.black_color = "#1F1F1F"  # 黑色

    def _send(self, openid="", tpl_id="", url="", data={}):
        """
        发送消息模板

        :param openid: 用户微信的openID
        :param tpl_id: 消息模板ID
        :param url: 消息模板点开的链接
        :param data: 消息的数据
        :return:
        """

        param = {
            "touser": openid,
            "template_id": tpl_id,
            "url": url,
            "topcolor": "#FF0000",
            "data": data
        }

        res = requests.post(self.url, json.dumps(param)).json()
        logger.debug(res)
        return res

    def activity_result_notice(self, openid, product_title):
        """
        报名结果通知

        {{first.DATA}}
        活动名称：{{keyword1.DATA}}
        结果：{{keyword2.DATA}}
        {{remark.DATA}}

        金色世纪二十周年庆奖品通知

        活动名称：金色初心二十年  激情再筑世纪梦

        结果：恭喜您获得(即食山药一袋)奖品已经放入我的库存
        感谢您的耐心等待！请注意查收~

        (随手礼：素园野生辽参初见+怀山堂山药粉）
        （奖品：素园野生辽参大隐、普洱茶、肩颈按摩椅、越甲科技旅行箱、京仁博爱口腔洁牙卡、花下秀洗护套装、怀山堂即食山药）

        :param openid: 用户微信的openID
        :param url: 消息模板点开的链接
        :param login_ip: 用户登录的IP
        :return:

        """
        url = "http://h5.ktgj.com/weshop/reserve"

        first = u"金色世纪二十周年庆奖品通知"
        remark = "\n感谢您的耐心等待！请注意查收~"
        result = u"恭喜您获得({})奖品已经放入我的库存".format(product_title)

        data = {
            "first": {
                "value": first,
                "color": self.gold_color
            },
            "keyword1": {
                "value": "金色初心二十年  激情再筑世纪梦",
                "color": self.black_color
            },
            "keyword2": {
                "value": result,
                "color": self.black_color
            },
            "remark": {
                "value": remark,
                "color": self.gold_color
            }
        }
        logger.debug(data)
        return self._send(openid=openid, tpl_id=setting.activity_result_notice_tpl_id, url=url, data=data)